package beans;

import java.util.List;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;

import pojo.Evento;
import pojo.Luogo;
import util.Utility;


@ManagedBean(name="luoghiBean")
@RequestScoped
public class LuoghiBean{

	@ManagedProperty(value="#{connectionBean}")
	private ConnectionBean connectionBean;
	private List ristoranti = null;
    private List bar = null;
    private List aperitivi = null;
    private Luogo dettaglio;
    private String idLuogo;
    private String nomeLuogo;
	private int numberRows;


	public LuoghiBean() {
		dettaglio = new Luogo();
		dettaglio.setId(-1);
		setNumberRows(5);
	}

	public List getRistoranti() {
		
		if(ristoranti!=null)
			return ristoranti;
	
		else{
			
			ConnectionBean connec = getConnectionBean();
			ristoranti = connec.doQueryLuoghiSaxon(null,"Ristoranti");
			return ristoranti;
			
		}

	}
	public List getBar() {
		
		if(bar!=null)
			return bar;
	
		else{
			
			ConnectionBean connec = getConnectionBean();
			bar = connec.doQueryLuoghiSaxon(null,"Bar");
			return bar;
			
		}

	}
	public List getAperitivi() {
		
		if(aperitivi!=null)
			return aperitivi;
	
		else{
			
			ConnectionBean connec = getConnectionBean();
			aperitivi = connec.doQueryLuoghiSaxon(null,"Aperitivi");
			return aperitivi;
			
		}

	}
	public ConnectionBean getConnectionBean()
    {
        return connectionBean;
    }

    public void setConnectionBean(ConnectionBean conn)
    {
        this.connectionBean = conn;
    }
    public void dettaglioListener(ActionEvent e) {
       
    	Map<String, Object>attrs= e.getComponent().getAttributes();
    	Integer idLuogo = (Integer) attrs.get("idLuogo");
    	String nomeLuogo = (String) attrs.get("nomeLuogo");

    	//System.out.println(idLuogo+ " "+nomeLuogo);
    	//if(dettaglio==null)
    		//dettaglio = new Luogo();
    	//dettaglio.setId(Utility.toInt(idLuogo));
    	if(idLuogo!=null)
    		setIdLuogo(idLuogo.toString());
    	setNomeLuogo(nomeLuogo);
    }
    public void dettaglioLuogoListener(ActionEvent e) {
        
    	Map<String, Object>attrs= e.getComponent().getAttributes();
    	String idLuogo = (String) attrs.get("idLuogo");
    	String nomeLuogo = (String) attrs.get("nomeLuogo");

    	//System.out.println(idLuogo+ " "+nomeLuogo);
    	//if(dettaglio==null)
    		//dettaglio = new Luogo();
    	//dettaglio.setId(Utility.toInt(idLuogo));
    	setIdLuogo(idLuogo);
    	setNomeLuogo(nomeLuogo);

    }
	public Luogo getDettaglio() {
		//String id = "0";
	//	if(dettaglio.getId()!=-1)
//			id = Utility.toString(dettaglio.getId());
    	//System.out.println(idLuogo);
	//	else
	//		id = idLuogo;
		
		//System.out.println(idLuogo);
		if(dettaglio.getId()==-1){
			ConnectionBean connec = getConnectionBean();
			dettaglio = connec.doQueryLuogoSaxon(idLuogo);
		}
		return dettaglio;
	}

	public void setDettaglio(Luogo dettaglio) {
		this.dettaglio = dettaglio;
	}
   public void rowsListener(ActionEvent e) {
        
    	setNumberRows(this.getNumberRows()+5);

    }
	public int getNumberRows() {
		return numberRows;
	}

	public void setNumberRows(int numberRows) {
		this.numberRows = numberRows;
	}
    public void setRistoranti(List ristoranti) {
		this.ristoranti = ristoranti;
	}

	public void setBar(List bar) {
		this.bar = bar;
	}

	public void setAperitivi(List aperitivi) {
		this.aperitivi = aperitivi;
	}

	public String getNomeLuogo() {
		if(nomeLuogo!=null)
		return Utility.delSpaces(nomeLuogo);
		else return "";
	}

	public void setNomeLuogo(String nomeLuogo) {
		this.nomeLuogo = nomeLuogo;
	}

	public String getIdLuogo() {
		return idLuogo;
	}

	public void setIdLuogo(String idLuogo) {
		this.idLuogo = idLuogo;
	}

}
